package com.zp.self.module.level_4_算法练习.算法.深度优先搜索.递归;

import com.zp.self.module.level_4_算法练习.数据结构.二叉树.TreeNode;

/**
 * @author By ZengPeng
 */
public class 力扣_104_二叉树的最大深度 {
    public static void main(String[] args) {
        TreeNode root = TreeNode.initRoot();
        System.out.println( new 力扣_104_二叉树的最大深度().maxDepth(root));
    }

    /**
     题目：给定一个二叉树，找出其最大深度。
     二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
     说明: 叶子节点是指没有子节点的节点。

     示例：
     给定二叉树 [3,9,20,null,null,15,7]，

     分析：
     1.递归：
         1.单步操作：有子节点继续递归
         2.终止条件：当前节点为null 返回 0;
         3.返回值：下一层递归的基础上+1

     边界值 & 注意点：
     1.
     **/
    public int maxDepth(TreeNode root) {
        if(root==null) return 0;
        return  Math.max(maxDepth(root.left), maxDepth(root.right))+1;
    }


}
